#include <iostream>

using std::cout;
using std::endl;

#if 0
int add()
{
    return 10;
}

int add(int x)
{
    return x + 10;
}

int add(int x, int y)
{
    return x + y;
}

int add(int x, int y, int z)
{
    return x + y + z;
}
#endif

//默认参数必须要从右向左进行连续赋值
//C/C++而言，函数的参数入栈的顺序是：从右向左
//默认参数的使用就是为了减少代码的书写
int add(int x = 0, int y = 10 , int z = 0)
{
    return x + y + z;
}

int main(int argc, char **argv)
{
    int a = 3, b = 4, c = 5;
    cout << "add() = " << add() << endl;
    cout << "add(a) = " << add(a) << endl;
    cout << "add(a, b) = " << add(a, b) << endl;
    cout << "add(a, b, c) = " << add(a, b, c) << endl;

    return 0;
}

